package leetcode_数组.leetcode_二维数组变换;

/**
 * 重塑矩阵
 * 找到原来的元素在变换后的数组中的位置
 *   按照原数组算出元素的位置 , 设置一个 tem , 从 0 开始 , 记录元素的位置
 *  元素在新数组的位置: 行号 = 元素的位置 / 新数组的行号 ; 列号 = 元素的位置 % 新数组的列号
 */
public class _566 {
    public static void main(String[] args) {
        System.out.println(matrixReshape(new int[][]{{1, 2}, {3, 4}}, 1, 2));
    }

    public static int[][] matrixReshape(int[][] nums, int r, int c) {
        // r * c == nums.length * nums[0].length
        if (nums.length * nums[0].length != r * c) {
            return nums;
        }
        int[][] ans = new int[r][c];
        int tem = 0;
        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < nums[0].length; j++) {
                ans[tem / c][tem % c] = nums[i][j];
                ++tem;
            }
        }
        return ans;
    }

}
